約 4,247,041 件
https://w.atwiki.jp/bokuyo/pages/174.html
Emacs 環境設定 「Visual C++ で書いてるの?ぷぷー、プログラマだったらEmacs 使うよねー」と小指が異常に発達した方に指摘されたので、これからはEmacs とともに生きていきたいと思います。 ぼくのバージョンはGNU Emacs 22.3.1 です。 やばい、unix わかんない!! Emacs C-x C-f ファイルを開く, 新規作成 .emacs ターミナルから.emacs.d ディレクトリがあるか確認 cd /Users/ ls -a
https://w.atwiki.jp/cupnes/pages/28.html
Helmのインストール Anythingの無効化 .emacsからコメントアウト ;; ;; anything.elの設定 ;; (require anything-startup) Helmのダウンロード・ビルド $ cd ~/site-lisp/ $ git clone https //github.com/emacs-helm/helm.git $ cd helm/ $ make .emacsへ追加 以下を追加 ;; Helmの設定 (add-to-list load-path "~/site-lisp/helm") (require helm-config) 参考 https //github.com/emacs-helm/helm http //d.hatena.ne.jp/tomoya/20130519/1368942603 面白そうな記事のまとめ Software Design連載記事「Emacsのトラノマキ」の原稿 GNU GLOBALの設定 $ cp /usr/local/share/gtags/gtags.el ~/site-lisp/ 以下を~/.emacsに追記 ;; GNU GLOBAL(gtags.el)の設定(ここから) (add-to-list load-path "~/site-lisp") (autoload gtags-mode "gtags" "" t) (setq gtags-mode-hook (lambda () (local-set-key "\M-t" gtags-find-tag) (local-set-key "\M-r" gtags-find-rtag) (local-set-key "\M-s" gtags-find-symbol) (local-set-key "\C-t" gtags-pop-stack))) (add-hook gtags-select-mode-hook (lambda () (setq hl-line-face underline) (hl-line-mode 1))) (add-hook c-mode-hook (lambda () (gtags-mode 1) (gtags-make-complete-list))) ; Customization (setq gtags-suggested-key-mapping t) (setq gtags-auto-update t) ;; GNU GLOBAL(gtags.el)の設定(ここまで) 参考 http //d.hatena.ne.jp/higepon/20060107/1136628498 c-modeのタブ幅(インデント幅)設定 (setq c-default-style "linux" c-basic-offset 4) http //www.emacswiki.org/emacs/IndentingC auto-complete-mode.el http //cx4a.org/software/auto-complete/index.ja.html c-modeの自動インデント有効化/無効化 C-c C-lで切り替え デフォルトで無効化する場合は以下を.emacsに追加 (add-hook c-mode-hook (lambda () (c-toggle-electric-state -1))) 参考 http //d.hatena.ne.jp/syohex/20110624/1308871777 導入したいemacs設定 http //shibayu36.hatenablog.com/entry/2012/12/29/001418 auto-install.el 「〜.el」のスクリプトを追加する際の ダウンロード 保存 バイトコンパイル ロード を自動化する 1. auto-install.elをダウンロード、保存 http //www.emacswiki.org/emacs/download/auto-install.el からダウンロードして、load-pathの通った場所に配置し、バイトコンパイル コマンドライン上で行う場合は以下のように行える $ mkdir -p ~/.emacs.d/auto-install $ cd ~/.emacs.d/auto-install $ wget http //www.emacswiki.org/emacs/download/auto-install.el $ emacs --batch -Q -f batch-byte-compile auto-install.el 2. .emacsに設定を追加 (add-to-list load-path (expand-file-name "~/.emacs.d/auto-install")) (require auto-install) (auto-install-update-emacswiki-package-name t) (auto-install-compatibility-setup) (setq ediff-window-setup-function ediff-setup-windows-plain) Emacsでちょっとずつスクロールする http //hitode909.hatenablog.com/entry/20100525/1274771578 タブ幅を変更する 例)タブ幅を半角スペース4個分にする (setq-default tab-width 4) (setq default-tab-width 4) (setq tab-stop-list (4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120)) 参考: http //masutaka.net/chalow/2009-07-10-4.html ある特定の色設定を編集する 例えば、sh-modeのヒアドキュメントの色設定が見難いなどの場合 設定を変更したいモードをバッファに開いた状態で以下のコマンドを実行 M-x list-faces-display 編集したい色にカーソルを合わせてEnter そして、編集後は [Save for future sessions] を選択することで、設定ファイルに保存してくれる 必要に応じてColor Themeを変更する ~/site-lisp/color-theme-6.6.0/ にColor Themeが展開されているとする。 ロード M-x load-file Load file ~/site-lisp/color-theme-6.6.0/color-theme.el 初期化 M-x color-theme-initialize テーマ設定 (color-theme-dark-laptopのテーマを設定する場合) M-x color-theme-dark-laptop 参考 http //openlab.dino.co.jp/2008/07/04/222725288.html 文字サイズを変える 自分の環境では以下でできた。 文字を大きく C-x C-; 文字を小さく C-x C-- デフォルトのサイズに戻す C-x C-0 参考 http //tkmsaoi.hatenablog.com/entry/2012/09/05/232904 view-modeのキーバインド (require view) (define-key view-mode-map (kbd "N") View-search-last-regexp-backward) (define-key view-mode-map (kbd "?") View-search-regexp-backward) (define-key view-mode-map (kbd "G") View-goto-line-last) (define-key view-mode-map (kbd "b") View-scroll-page-backward) (define-key view-mode-map (kbd "f") View-scroll-page-forward) (define-key view-mode-map (kbd "h") backward-char) (define-key view-mode-map (kbd "j") next-line) (define-key view-mode-map (kbd "k") previous-line) (define-key view-mode-map (kbd "l") forward-char) (define-key view-mode-map (kbd "J") View-scroll-line-forward) (define-key view-mode-map (kbd "K") View-scroll-line-backward) 読み取り専用時には「view-mode」を使用する (setq view-read-only t)
https://w.atwiki.jp/selflearn/pages/41.html
( - ) 秀丸からEmacsにエディタ環境を移行するためのチートシート このページでは、秀丸の色々な機能をEmacsではどのように実現するかを記します。 最終更新日:2014年07月23日 (水) 09時54分00秒 前置き 秀丸は良いソフトです 秀丸は言わずとしれた有名エディタで、開発業務を行っている人にとってなくてはならないアプリです(若干の誇張有り)。強力かつ高速な編集機能、かゆいところに手が届く機能、などなど。 これがなければ皆の生産性は半分以下に落ちてしまうと思います(若干の誇張有り)。使いこなせば使いこなすほど馴染んでくる、というカスタマイズ性の高さも素晴らしい。 その辺はおあつらえのIDEじゃ味わえないです。もうね、開発者だったらどんなことがあっても入れて使いこなせるようになっておくべき、とも思うくらい。 バージョンが上がるごとに「この機能がほしかった」というツボな機能が入ってくるところもね。開発者のことを大切にしてくれているな、という気持ちにさせてくれる「分かっている」アプリなのです。 でもね・・・ いいところだらけの秀丸ですが、「Windowsでしか動かない(*1)」という最大かつ致命的な欠点を持っているソフトでもあります。 僕の場合、職場はWindows、自宅ではMacを使っているわけで、つまり自宅での生産性が半分以下に落ちてしまっているわけです(かなりの誇張有り)。とはいっても帰宅してからもWindowsの汚い画面なんか見たくないので、しょうがないです。え、Vista?UACが嫌いだから却下。 趣味で色々とプログラミングをしていると、自宅でも職場と同じような効率で作業したいという心境になってきてしまいます。でもMacに秀丸はない。 しばらく悶々としていました。で、色々試したり考えたりした結果、同じように「馴染み方が半端でない」といわれるEmacsを使っていくことに決めました。理由は、 EmacsならLinuxもWindowsもMacでも同じ操作ができる Xcodeは便利だが、Mac専用なので根本的な解決になっていない(覚える量が2倍になるだけ) Emacsは「カスタマイズできる環境」なので、自分の好きなようにできる viと違いマウスで操作できる です。 というわけでこのページを使って、環境の引っ越しに向けて秀丸の色々な機能をEmacsでどのように実現するかをまとめることにしたのです。 注意 EmacsのターゲットはCarbon Emacsとします。つまり、ここでは特別なもの以外はすでにEmacsに組み込まれているとみなし、導入方法を説明したりはしません。あくまで代替手段のコマンド一覧を示すのみです。 目次 まとめる前によく使っている機能 ゴールの設定 秀丸のそれ、Emacsではどうやるの?ないと困る機能tagsファイルによるジャンプ Grep 関数一覧表示 キー入力の記録&再生 検索履歴による再検索 最後に編集した箇所に移動 検索方向の切り替え キー入力によるファイルの切り替え 文字コード表示&保存 マクロ外コードのグレイアウト ファイルを開いた時に、以前編集していた場所に移動 日付の入力 一括コメントアウト 気になる点タブ文字の入力 行番号の表示 あったらいいなdiff+Mergeを、日本語表示に対応させた上で実現 入力しようとしている名前を補完 選択領域をハイライトまたは反転させる Shift+矢印キーで領域選択する 矩形領域の選択 その他マウスのホイールスクロールを加速させたくない 「最近使ったファイル」をメニューに表示させる 文字列の自動補完 Subversionクライアント 対応する括弧に移動 補足外部からダウンロードした.elファイルをCarbonEmacsにインストールする方法()CarbonEmacsアプリ下に保存(一番手っ取り早いが将来性がない) .emacs.elでパスを指定し、そこに保存する(オススメ) 参考にした情報Special Thanks 書籍 インターネット国内 海外 コメント まとめる前に さて、まとめ資料を作る前に、自分が秀丸のどういう機能を使っているかを洗い出します。 よく使っている機能 まず「この機能はないと困る!」という機能の一覧を考えます。秀丸で馴染んでしまった操作であり外せない機能の一覧です。ただEmacsでどこまで代用できるか分からないので、優先度も付けてみました。 重要度 機能 説明 必須 tagsファイルによるジャンプ C/C++ファイルで、現在のカーソルが示す関数の実態へとジャンプする。バックジャンプも可能 必須 Grep 複数のソースファイルからキーワードにマッチするキーワードを抜き出して、一覧表示する。ここから更にダイレクトジャンプ&バックジャンプができること 必須 関数一覧表示 ファイル内に記載されたCやC++などの関数一覧を別ダイアログorウィンドウで表示しておき、今はどの関数にいるか、マウスクリックによる関数先頭への移動が行える 高 キー入力の記録&再生 あるキー入力をトグルに動作を記録し、その後再生できる 高 検索履歴による再検索 以前使った検索キーワードを使って、再検索する。ダイアログボックスから履歴を選択できる。これにより置換する前に検索で正規表現を試し、実際に使用、というテストファーストな編集ができる 高 最後に編集した箇所に移動 最後にキー入力した箇所にカーソルを移動する。編集中、別の場所でコピーをしてから本機能で編集中の場所に戻ってペースト、というのが非常に簡単。Wordだとコピーしたときの場所を最後の編集箇所として認識されてしまうが、それは違う!わかってない! 中 検索方向の切り替え 検索方向をキー1つで切り替えられる 中 キー入力によるファイルの切り替え キー入力によって、編集対象のファイルを切り替える機能。どのファイルを開いているかもすぐに分かる 中 文字コード表示&保存 開いているファイルの文字コードを常に表示しておく。保存する際も文字コードと改行コードを指定できる 中 マクロ外コードのグレイアウト #if 0や未定義のマクロで括られた部分をグレイアウトする。グレイアウトするかどうかは別途定義しておく必要があるものの、大規模な年老いたソースを読む場合には必須 中 前回編集箇所への移動 ファイルを開いた時に、以前編集していた場所に移動する 低 日付の入力 カーソルの位置に今日の日付を入力する。秀丸ではマクロで実現 低 一括コメントアウト 選択した領域のコメントアウト。秀丸ではマクロで実現 一方でEmacsを少しかじってみると、Emacsのデフォルト設定では次のような振る舞いが気になります。これも直せないか調べてみようと思います。 気になる度 機能 気になる点(どうなってほしいか) 中 タブ文字の入力 Tabキーを入力したときのインデントが空白文字で行われる。これはこれで綺麗だけれど、他のWindows開発者に合わせて、タブ文字でタブを入力したいときもある 中 行番号の表示 Emacsでは行番号をウィンドウ左側に表示できない? 中 選択領域の明示 選択領域をハイライトまたは反転させる。どこが選択領域の最初かなんて覚えていません。 中 PCライクな操作 Shift+矢印キーで領域選択する。記憶のすみでは[始点選択]→[終点選択]という前時代的なインタフェースだった記憶があるので。 中 矩形選択 矩形領域の選択。Emacsで出来るのは知っているけど、入力キーが面倒だし・・・ さらに欲目を出して、こんなことが出来たらという点も挙げてみましょう。 ほしさ度 機能 説明 高 diff Diff+Mergeを、日本語表示に対応させた上で実現する 中 ソースコード補完 tagsファイルなどから、入力しようとしている関数名を補完する機能 でも高望みはしません。まずは秀丸でよく使う機能をまとめてから、です。 ゴールの設定 上記の一覧表から、次をゴールに設定します。 それぞれの表で出た機能を実現する方法を示す秀丸でよく使う機能は必ず探し出す 気になる点も必ず できたらいいなはできるだけ Emacsのキーバインドをできるだけ維持するきっと秀丸と同じ操作性にすることもできるんでしょうが、それだと何か違うと思う 秀丸のそれ、Emacsではどうやるの? ないと困る機能 tagsファイルによるジャンプ etagsでTAGSファイルを作成して、そして・・・とか考えていたけれど、どうやらgtagsというのがヨサゲ。GNU GLOBALと言う、いわばetagsやctagsの高機能版(統合版?)のようなもの。BerkleyDBに関数や変数の定義を登録して、情報を出力してくれるみたい。 注意:gtagsといってもGoogle tagsのことではないので気を付けて(間違えないとは思うけどね)。 インストールは簡単。MacPortsを使って、 $ sudo port install global とするだけ。 そうすると「/opt/local/var/macports/software/global/5.6.2_0/opt/local/share/gtags」ディレクトリの下に「gtags.el」が置かれているので、これをCarbon Emacsのsite-lispディレクトリにコピー。 あとは.emacs.elに ;; GNU global(gtags)の設定 (when (locate-library "gtags") (require gtags)) (global-set-key "\M-t" gtags-find-tag) ;関数の定義元へ (global-set-key "\M-r" gtags-find-rtag) ;関数の参照先へ (global-set-key "\M-s" gtags-find-symbol) ;変数の定義元/参照先へ (global-set-key "\M-p" gtags-find-pattern) (global-set-key "\M-f" gtags-find-file) ;ファイルにジャンプ (global-set-key [?\C-,] gtags-pop-stack) ;前のバッファに戻る (add-hook c-mode-common-hook (lambda () (gtags-mode 1) (gtags-make-complete-list))) と記述しておく。キーバインドは上記のコマンドを参照。 GNU GLOBALの便利なところは、更新したぶんだけTAGファイルを作り直してくれるところ。だから2回目以降は速い、速い。 $ global -u とするだけです。 ただ、現時点ではなぜかcppファイルで「extern "C" {...}」内に定義した関数をタグ(GTAGS)として登録してくれない(*2)。なぜだろう??.globalrcと各コマンドのmanページを読んでみたけど分からない…。 2008/10/29追記 どうやら既知のバグらしいです。MacPortsでのバージョンが5.6.2だったので、Portfileをゴニョゴニョして最新版の5.7.2(2008/9/30リリース)を試してみたのですが、やはり駄目でした。 2008/11/12追記: このバグを直すパッチが採用されたようです。将来のリリースでは問題なくなりそうなので嬉しい。GLOBAL最強。 Grep これを選ぶのは悩みました。最初はgrep-findをしていたけれど、どうも使いづらい(遠回りに作業をしている)感じがしてダメで、しばらくはcolor-moccurを使っていました。 ;; color-moccurの利用宣言と、その設定 ;; (moccur-editもインストールしました) ;; Ref.URL http //www.bookshelf.jp/soft/meadow_50.html#SEC740 ;; - .svnは対象外とする ;; - カーソル付近の単語をデフォルトの検索語にする ;; - 複数の単語を、記入順序に関係なく検索する (load "color-moccur") (setq dmoccur-recursive-search t) (setq moccur-grep-default-word-near-point t) (setq moccur-split-word t) (setq dmoccur-exclusion-mask (append ("\\~$" "\\.svn\\/\*" "\\.o$" "GPATH" "GRTAGS" "GSYMS" "GTAGS") dmoccur-exclusion-mask)) だけど、除外ファイルも一度検索リストに入れられてしまうので遅いという、けっこう重大な欠点があったので次第に使わなくなってしまいました。 で、紆余曲折のすえに現在使っているのは以下の機能。 まずMacPortsで"p5-app-ack"をインストールしてackコマンドが使えるようにしておきます。そして、それとcolor-grep.elを併用して、 grepを高速に。しかも.svnなどの管理ファイルは最初から無視してくれる grep結果バッファでカーソルを移動するだけで別バッファに該当ファイルの行を表示してくれる という機能を満たすことができました。 ;; grep結果バッファでのカーソル移動でダイナミックにファイルを開いてくれる (require color-grep) (setq color-grep-sync-kill-buffer t) ;; M-x grep-findでPerlのackコマンドを使うよう変更 (setq grep-find-command "ack --nocolor --nogroup ") あとは上記機能にmoccur-grep-default-word-near-pointに相当する、コマンド実行時のカーソル近辺の単語を自動入力してくれる機能があれば完璧です。改造して、作れないものだろか。 2008/11/12追記: 「コマンド実行時のカーソル近辺〜」が自作できました。.emacs.elに以下の定義を追加して、M-x grep-by-ackまたはF6キーで実行できるようにしました。 ;; M-x grep-by-ack ;; Perlのackコマンドを使ったgrep(カーソル付近の単語をデフォルトの検索語に) (defun grep-by-ack () "grep the whole directory for something defaults to term at cursor position" (interactive) (setq default-word (thing-at-point symbol)) (setq needle1 (or (read-string (concat "ack for " default-word " ")) default-word)) (setq needle1 (if (equal needle1 "") default-word needle1)) (setq default-dir default-directory) (setq needle2 (or (read-string (concat "target directory " default-dir " ")) default-dir)) (setq needle2 (if (equal needle2 "") default-dir needle2)) (grep-find (concat "ack --nocolor --nogroup " needle1 " " needle2))) これでOK。実行すると ファイル名(デフォルトはカーソル上の単語) 検索パス(デフォルトはコマンドを実行したバッファのカレントディレクトリ) を順番に聞いてきます。 便利、便利。ちなみに参考にしたのは米Slashdotのこちらです。 関数一覧表示 [M-x speedbar] これ、予想以上でした。VisualStudioやEclipseのようなソースツリービューを表示してくれる。[f11]などの最高位のキーに設定してしまう価値は十分にあります。 と思ったら、Emacs Code BrowserなどというすごそうなElispも発見。Carbon Emacsには含まれていないので調査が必要かな・・・なんて思ったけれど、スクリーンショットを見る限りちょっとやり過ぎな感がしたので触らないことにした。 2009/04/15追記:[Googleから「nav」というのが出ていた http //google-opensource.blogspot.com/2009/03/nav-ide-like-navigation-pane-for-emacs.html]。プロジェクトホームにあるスクリーンショット(下に転載)を見てみると、speedbarと異なり同じウィンドウ内でファイルを表示してくれるのが何だかヨサゲ。早速インストールしてみた。起動は「M-x nav」。 imageプラグインエラー ご指定のURLはサポートしていません。png, jpg, gif などの画像URLを指定してください。 うーん・・・ダメだこれ。ファイルを表示してくれるだけで関数一覧は表示してくれない。1キーで色々できるのは良いんだけど、ちょっとボクの目的からは外れているのでパス。 キー入力の記録&再生 記録開始:[F3]or[C-x (] / 記録終了:[F4]or[C-x )] / 再生:[F4]or[C-x e] [F3]や[F4]はEmacs 22より古いバージョンでは使用できないとのこと。 Emacsではマクロと呼ぶ。直前のマクロを編集する場合は[C-x C-k e]と入力してからリターン([C-x e]も可)。編集後は[C-c C-c]で確定。マクロを保存して再利用するのは若干面倒で、 マクロに名前を付ける[C-x C-k n]でマクロ名を付加(セッションを閉じるまでは[M-x マクロ名]で実行可能) 名前を付けたマクロをファイルに展開、保存する.emacsか適当なファイルにて[M-x insert-kbd-macro Enter マクロ名 Enter]と入力し、マクロをelispで展開 ファイルを保存。.emacs以外のファイルに保存した場合は、.emacsにて「(load-file "パス付きのファイル名")」を記述しておく [M-x マクロ名]で実行 という手順を踏む。キー割当も行いたい場合は、同じく.emacs上で「(global-set-key "¥C-x¥C-kT" マクロ名)」と記述しておく(Tの場合)。 ちなみにマクロに割り当てられるキーは、[C-x C-k 0〜9またはA〜Z]のみなので要注意。 検索履歴による再検索 検索やファイルオープンのときに[M-p]を押すだけ イヤなブログ著者のサイトにある、minibuf-isearch.elやsession.elが使えるかどうか調査したりもしたのですが、そんなことをしなくても大丈夫でした。 最後に編集した箇所に移動 とりあえず簡単な方法は、[C-¥]→[C-g]→[C-¥]でUndoしてからRedoで戻せば何とかなるけれど、一度操作を取り消すのがちょっとリスキー。 そこで色々と検索したらgoto-chg.elというEmacsLispを発見。ファイルを開いてから変更した箇所へ移動できる(しかも辿っていける)とのこと。 ただ、同サイトでのキーアサインはGNU Globalとバッティングしてしまうので、普段の自分のアサイン[F5](逆方向へ辿る時はShift+[F5])を試してみました。 ;; [F5]で最後に編集した箇所へ辿る ;; Shift-[F5]で編集箇所を逆方向に辿る ;; http //www.emacswiki.org/cgi-bin/wiki/goto-chg.el (require goto-chg) (global-set-key [f5] goto-last-change) (global-set-key [S-f5] goto-last-change-reverse) そしたら、おぉ、まさに秀丸のと同じかそれ以上の機能が!素晴らしい! 検索方向の切り替え 順方向:[C-s]、逆方向:[C-r] ※かみむらさんにM-sではなくC-rだと指摘してもらいました。THX! 単語検索:[C-s Enter C-w] ※ただし、次の候補を探しにいってくれない! ただ、この検索方法だと大文字小文字の区別無く、単語かどうかの判定もできません。秀丸だと検索用ダイアログボックスのチェックボックスで、 大文字/小文字を区別する 単語として検索 正規表現の適用 を切り替えられる(検索している途中でも)ので、これだけだとちょっと不便。調査中。 と、ここで問題発生。単語として検索したとき、いったん検索すると次候補に[C-s C-s]してしまうと普通の検索モードになってしまう。この回避方法はないみたいで、さてどうしたものか。 −−2chで聞いたところ、「ないよ」とか「そんなあなたにmoccur」「Redoは?」と答をくれた。Redo, Redo+はダメだったけど、moccurは調べれば何とかなりそう?moccur関連全部入りのcolor-moccurはこちら。 2008/8/6:単語検索を連続する方法に気が付いた。なんだ、正規表現で単語を表せばいいんだ。 単語検索:[C-M-s] \ hogehoge\ 検索を続けるとき:[C-s], [C-r] 気付けば簡単でした。 ちなみにインクリメンタルサーチ中にバックスペースキーを入力するとメイン画面の文字が削除されてしまうのは、以下の設定を.emacs.elに記述しておけば良いことが判明。 ;; backspaceキーをインクリメンタルサーチ中のミニバッファで有効にする (define-key isearch-mode-map [backspace] isearch-delete-char) 参考にしたのはこちらのサイト。ありがとうございました。 キー入力によるファイルの切り替え [C-x C-→]または[C-x C-←] (矢印は矢印キーを表す) [C-x b]や[C-x C-b]もいいけれど、一番手軽。ちなみにウィンドウやフレーム間の移動は、 [C-x 2]などで作成したウィンドウ間の移動:[C-x o] [C-x 5 2]などで作成したフレーム間の移動:[C-x 5 o] と入力する。・・・けれど、フレーム間の移動はちょっと面倒くさい。そこで調べてみたところ(other-frame x)でxに渡す値でアクティブなフレームを切り替えてくれることが判明。逆戻りは負数を与える。 というわけで、[C-x C-↑][C-x C-↓]に登録してみた。 ;; C-x C-left/right でバッファの切り替え ;; C-x C-up/down でフレームの切り替え (global-set-key [?\C-x C-up] (lambda () "" (interactive) (other-frame -1))) (global-set-key [?\C-x C-down] (lambda () "" (interactive) (other-frame 1))) あ、これ便利だ。 文字コード表示&保存 どうやるの? マクロ外コードのグレイアウト どうやるの? ファイルを開いた時に、以前編集していた場所に移動 以下を.emacs.elに記述するだけです。saveplace.elはCarbonEmacsに最初から含まれています。 (load "saveplace") (setq-default save-place t) これによって「最後にカーソルのあった場所(*3)」に移動してくれます。 日付の入力 どうやるのだろう?EmacsLispで簡単にできそうな気もするけれど。 → 2008/10/29現在、ATOKをインストールしてしまったので「きょう」や「いま」を変換すれば日付や時刻が入力できるようになってしまいました。 一括コメントアウト 事前に範囲を指定しておいて[M-;](セミコロン)※かみむらさんTHX! ※範囲指定していない場合はカーソルのある行の末尾にコメントが追加され、そこにカーソルが移動してくれる このM-;は結構インテリジェントで、範囲選択していない状態では行末にコメントを追加し、その真ん中にカーソルを持ってってくれる。便利! 気になる点 タブ文字の入力 [M-i]でハードタブ(空白記号ではない、¥t)が入力される。 ただしバックスペースで削除する時はタブ文字から空白になって消されていくし、また自動インデントの種類によってはタブではなく2文字の空白で表されてしまうので、本格的にタブだけで使用するには結構なカスタマイズが必要っぽい。 2008/9/9追記: 空白になって消されていくのは、Backspaceキーにbackward-delete-char-untabifyというように「非タブ化しつつバックスペース」というコマンドがバインドされていたことが原因だった。なので (global-set-key [backspace] backward-delete-char) と.emacs.elに記述して問題解決。 行番号の表示 他所様の作ったものを使うしかない模様。Webを漁ってみると、どうも有名どころとして3つあるみたい。 wb-line-number.el setnu.el( setnu+.el) linum.el まずwb-line-number.elは、ダウンロードしたwb-line-number.elをrequireして、適宜ONにすればOK。 (require wb-line-number) ;;← これを.emacs.elに追加 (wb-line-number-toggle) ;; ← こちらは適宜呼んであげる でも、Carbon Emacs上で試したら下図のように行を正しく認識してくれなかった。なぜだろう?? そこでsetnu.elを調べてみると、これは・古い、・バグが多い、・修正版として用意されたsetnu+.elがリンク切れ、というように全然使えなかったのでパス。 結局、最後のlinumが一番シンプルで良かったのでこれを使うことにした。使い方はsetnu.elとほぼ同じ。 .emacs.elに (require linum.el) と記述しておき、表示するときは M-x linum-mode とするだけ。 ちなみにemacs.elによく書かれている(line-number-mode t)はモードラインに現在行を表示させるだけで、linum-modeのように画面の左側に行番号情報を表示してくれるわけじゃない。(column-number-mode t)も同じで、モードラインに桁数を表示するだけで違うから注意。 あったらいいな diff+Mergeを、日本語表示に対応させた上で実現 どうやるの?ediffはいいけれど、ファイルの文字コードを自動判別してくれるわけではないみたい(Windowsと開発環境が混在しているとShift-JISも混じってきて面倒)。さて、どうしたものか。 入力しようとしている名前を補完 どうやるの?ac-modeが使えそうだけれど、今後消えゆく運命にありそうなEmacsLispなので、代替物を探さねば。 選択領域をハイライトまたは反転させる .emacs.elに以下の式を記述しておく (transient-mark-mode 1) Emacsのデフォルト設定だと、領域を選択している最中の選択箇所はハイライトされず、「今どこを選んでいるの?」というのが往々にして分からなくなりがち。この場合は上記のとおりに記述しておけばOK。領域を選択している際の色を変えられます。次の「Shift+矢印キー」と組み合わせて設定しておくと便利かな。 Shift+矢印キーで領域選択する .emacs.elに以下の式を記述しておく (setq pc-select-selection-keys-only t) (pc-selection-mode 1) これで大丈夫です。Mac OSXのCarbon EmacsはこれがデフォルトでONになっているみたいだけど、Meadow3.00ではOFFだったので記録しておこう。 矩形領域の選択 .emacs.elに以下を追加しておき、 (autoload sense-region-on "sense-region" "System to toggle region and rectangle." t nil) (sense-region-on) 範囲選択している状態で C-SPC を入力。 整形テキスト、テキストで書かれた表を取り扱うときに矩形選択機能があると便利です。秀丸ではこの機能があって、ボクはC-bに割り当てて多用していました。で、Emacsにも当然同じ機能があるわけですが・・・ 入力が面倒くさい(デフォルトのキーバインド(C-x r k, C-x r y)が有り得ない。替えればいいけどさ) 矩形選択中なのに画面は通常選択のままでイメージが掴みづらい というのが気になります。特に後者、常用するにはちと厳しい。 そこで見つけたのが冒頭に紹介した[session.el http //taiyaki.org/elisp/sense-region/]。これは便利で、範囲選択中にC-SPCすると通常選択と矩形選択を切り替えてくれます。しかも矩形選択中は矩形の選択領域が表示されますし、切り取りや貼り付けもC-w, C-yで出来ます(*4)。 before after!! さらにこのEmacsLispには追加機能があって、領域を選択していないときにCtrl+[space] を繰り返すと単語がリージョンに追加されていってくれます。便利だ。 上記で紹介したサイトからのソースリンクが切れてしまっているので、載せておきます。http //taiyaki.org/elisp/sense-region/src/sense-region.el です。ページのリンク先には「www」が付いてしまっているようです。 その他 上の機能を探している途中で見つけた、「これも覚えておいた方がよいな」というコマンドや設定を書いておきます。 マウスのホイールスクロールを加速させたくない Emacsのマウスホイールの動き、なんだか他のアプリとは少し違うんですよね。少しでも回しすぎると一気に最後まで飛んで行ってしまうような。 どうもマウスを連続して回していると、wheel-up/downからdouble/triple-wheel-up/downというイベントに変わってしまっているみたいです。そこで振る舞いをカスタマイズしつつ、なじみやすい設定に落とし込んでみました。 ;; マウスのホイールスクロールスピードを調節 ;; (連続して回しているととんでもない早さになってしまう。特にLogicoolのマウス) (global-set-key [wheel-up] (lambda () "" (interactive) (scroll-down 1))) (global-set-key [wheel-down] (lambda () "" (interactive) (scroll-up 1))) (global-set-key [double-wheel-up] (lambda () "" (interactive) (scroll-down 1))) (global-set-key [double-wheel-down] (lambda () "" (interactive) (scroll-up 1))) (global-set-key [triple-wheel-up] (lambda () "" (interactive) (scroll-down 2))) (global-set-key [triple-wheel-down] (lambda () "" (interactive) (scroll-up 2))) うわ、コレすごい快適。 使っているマウスがLogicoolのマウスで、例のMicroGear™スクロールホイールを使っていると速攻でdouble/tripleに移行してしまうので、すばらしい! ちなみに参考にさせてもらったサイトはこちらです。感謝です。 「最近使ったファイル」をメニューに表示させる .emacs.elに以下の式を記述しておく (require recentf) (recentf-mode 1) このメニューの設定は色々と変えられます。 文字列の自動補完 (M-x ac-mode) 上記はかなり賢い補完機能を持ってた。候補1つ1つがUndoの対象になってしまうところ以外は非の打ち所がないです。Emacsを使う上では必須機能に近い、と見ました。 公式サイトはこちら。 ※注意(2008/10/25):CarbonEmacsの2008年秋版ではac-modeが無くなるみたいです。 Subversionクライアント psvn、ではなくてdsvnが便利。というのもこのサイトに書いてあるとおり、作業中に?キーでキーバインド一覧を表示できるから。 ;; Subversion用の設定 (psvn.elとdsvn.elを併用) ;; (require psvn) (autoload svn-status "dsvn" "Run `svn status ." t) (autoload svn-update "dsvn" "Run `svn update ." t) 熟練者にはpsvnでも良いんだろうけれど、ボクみたいな初心者にはdsvnがいいのです。 対応する括弧に移動 C-M-f/b または C-M-n/p 前者はS式、後者は括弧。どちらも便利だけれど、Cでは後者かな。ただ、C-M-というのは押しづらいので ;; 対応する括弧に移動(C-M-f/p相当) (global-set-key [?\C-{] backward-list) (global-set-key [?\C-}] forward-list) というようにC-{/}にアサインしておきました(本当はC-[/]にアサインしたかったけれど、C-[がESCキーと認識されてしまって対応できず。どうすれば良いんだろう?)。 補足 外部からダウンロードした.elファイルをCarbonEmacsにインストールする方法() CarbonEmacsアプリ下に保存(一番手っ取り早いが将来性がない) 手順は以下のとおりです。 .elファイルをダウンロード .elファイルを「/Applications/Emacs.app/Contents/Resources/site-lisp/」にコピー これだけ。ちなみにバイトコンパイルする場合は、同名のファイルを開いて、 M-x byte-compile-file で.elcファイルを作成しておけばオーケーです。 この方法は特別な設定が不要なところが利点ですが、CarbonEmacsのバージョンを更新したりすると全てご破算になってしまうのであまりオススメしません。 .emacs.elでパスを指定し、そこに保存する(オススメ) 手順は以下のとおり。 .elファイルをダウンロード .emacs.elのできるだけ最初の方でadd-to-listを記述 そこで指定したディレクトリに.elファイルをコピー たとえば私の場合はホームディレクトリ下に.emacs.d/site-lispを作り、そこに保存しています。 (add-to-list load-path "~/.emacs.d/site-lisp") (let ((default-directory (expand-file-name "~/.emacs.d/site-lisp"))) (normal-top-level-add-subdirs-to-load-path) ) これだとCarbonEmacsを書き換えてもelファイルが残るのでオススメです。不可視ファイルに保存するのがイヤな人はディレクトリ名を適当に変更してください。 参考にした情報 Special Thanks かみむらさん。コメント欄で色々と教えていただきました。ありがとうございます。 書籍 入門 GNU Emacsこのページ作成で最も使用した本。これがなければページを作ろうとすら思いませんでした。 GNU Emacsデスクトップリファレンスあまり役立たなかったけれど、上の本よりは手元に置いておきやすいのでボチボチ使いました。 インターネット 国内 秀まるおのホームページ秀丸のホームページ Wikipedia(ja)の記事どちらかといえばEmacsの歴史を知りたい人向け。 プリプロセッサで無効化されたコードをグレイアウトするにはどうしたらいいですか?表題の質問をはてなに出した人がいました。 Rubyのメソッドの補完を行うanything-rcodetools.elをリリース今回対象にしているetagsとは別(多分)のRubyメソッド補完elisp。今度試してみます。 海外 Slashdotの記事「(Stupid) Useful Emacs Tricks?」米SlashdotでEmacsのトリックで何かある?というトピックに集まったたくさんの記事。これは面白いです。 Emacs Nifty TricksEmacs小技の総本山的サイト。どんだけあるの? コメント もしあれば、どうぞ。 通常のコメントは、M-; (私の環境では) -- かみむら (2008-08-01 21 14 22) 一括コメントは、リージョンした状態で M-; -- かみむら (2008-08-01 21 14 49) grep は、M-x grep -- かみむら (2008-08-01 21 15 46) むしろ、M-x find-grep で、再帰的に grep してくれるのが便利です。 -- かみむら (2008-08-01 21 16 32) あと、etags があるならば、関数名にカーソルを配置して、M-. で、その関数定義の場所にジャンプしてくれます。 -- かみむら (2008-08-01 21 18 06) 保存する文字コードの指定は、M-x ret f です。 -- かみむら (2008-08-01 21 19 37) 最後に編集した場所への移動は、私は、Undo してます。あと、C-x 2 で画面を2つにして、片方で切り取って、片方で貼り付けとかも便利です。 -- かみむら (2008-08-01 21 20 50) ハードタブは、C-q TAB でしょうか。C-q C-i も可能かと。 -- かみむら (2008-08-01 21 23 30) 戻る方向への検索は、C-r も使えるかもしれません。 -- かみむら (2008-08-01 21 24 25) 私は、Emacs を応援してます! -- かみむら (2008-08-01 21 25 21) かみむらさん、色々とありがとうございます!色々知らなかったことがたくさんあり、どれも参考になります。Undoで最後の場所に戻る、というのは発想の転換ですね。すばらしい!このページ、更新が途中で止まっているのでまた再開しますね。かみむらさんのおかげでやる気が出ました。 -- かときち (2008-08-02 13 51 08) 初めまして。記事の方参考にさせて頂きました。ac-mode の振り替えは標準添付の hippie-expand でいかがでしょうか? -- すが (2008-11-22 02 31 16) すがさん、ありがとうございます!hippie-expandがどういうものか知らなかったので、ac-modeと比べてどうか、調べてみますね。感謝です。 -- かときち (2008-11-25 21 59 18) だけど、除外ファイルも一度検索リストに入れられてしまうので遅いという、けっこう重大な欠点があったので次第に使わなくなってしまいました。 これは改善されたみたい? -- y (2009-03-30 23 21 14) 遅い、というのはhippie-expandのことですよね。ac-modeもあまり使わないことに気付いて、今は使用を止めています・・・。コメントありがとうございます。あ、そういえば最近speedbarのようなバッファを同じウィンドウの中で表示する、というEmacs-Lispが公開されていたのを思い出しました。試してみようっと。 -- かときち (2009-03-31 02 00 50) [マクロ外コードのグレイアウト] cpp-highlight-buffer が良いみたいです。ただ、起動時にこれを実行させる場合はcondition-caseで例外処理しないとダメみたいです。 -- まつもと (2009-11-14 22 38 49) [gtags] gtags-find-tag よりgtags-find-tag-from-hereの方が、一気にジャンプ出来るんで良さげかもしれません。 -- まつもと (2009-11-14 22 42 01) まつもとさん、ありがとうございます。ちょっと使ってみて、試してみます。 -- かときち (2009-11-16 14 04 08) http //www.bookshelf.jp/soft/meadow.html の情報は非常に有用です。特にmoccur-edit.elは強力すぎて眩暈がします。 -- こうじ (2010-01-12 13 03 35) あと、行番号が要るというのはただの「思い込み」で、まともな行番号表示elispがないのは、必要ないことが判って作者が作るのを止めてしまうからだと思われます。 -- こうじ (2010-01-12 13 08 13) こうじさん、コメントとリンク、ありがとうございます。行番号は…難しいですね。diffやチームでのコードレビューなどでは行番号が識別子になっていますしね。 -- かときち (2010-02-05 11 40 53) 「入力しようとしている名前を補完」は dabbrev を使っています。途中まで入力して M-/ で補完。違うのが補完されたら再度 M-/ です。 -- こうぞう (2011-01-25 21 32 33) 「最後に編集した箇所に移動」と似た動きに、C-x C-x と C-u C-SPC がある。前者は今の位置とマークした位置を交換する。後者はマーク履歴を順に巡る。 -- こうぞう (2011-01-25 21 42 09) Wine1.2.2で hm802_signed.exe試用中ですが範囲選択の文字消えてません。僕の環境だけかも知れませんが。 -- yoshikazu (2011-02-19 22 52 58) その後の試用で矩形選択と横スクロールで文字消えました。 秀丸ビミョーに不便です。 -- yoshikazu (2011-02-20 12 26 19) http //itmst.blog71.fc2.com/blog-entry-44.htmlのコメントに答えがありました。 これで矩形選択や横スクロールでも文字消えません。 -- yoshikazu (2011-02-21 23 02 20) 検索で 大文字小文字を区別するには case-search-fold をnil/tに設定でどうでしょうか? -- 名無しさん (2014-07-23 09 54 00) 名前 コメント
https://w.atwiki.jp/gtavvehicles/pages/323.html
Carbon RS 概要 解説 モデル
https://w.atwiki.jp/kobapan/pages/91.html
emacs/text-modeではタブをスペースに変換しない emacs/備忘録 emacs/emacs-evernote-modeのインストール emacs/mmm-modeのインストール emacs/install-elispのインストール emacs/auto-complete-modeのインストール emacs/折り返し表示 emacs/root用の.emacsファイル emacs/mewがCreating an SSL TLS connection...で固まる emacs/recentf-ext.el+anything.el emacs/対話的に確認しながら正規表現を構成して置換するvisual-regexp emacs/起動時に前回開いていたすべてのファイルを開き直す emacs/キーバインドの設定の仕方 emacs/cua-modeで矩形選択 emacs/texiファイルからinfoファイルを作成して使う emacs/eshell emacs/編集作業のキーバンド emacs/文字上書きOverwriteモード emacs/ctags
https://w.atwiki.jp/k_rororo/pages/16.html
Emacs起動時のメッセージを消す エラーメッセージ「CRITICAL ** murrine_style_draw_box assertion `height = -1' failed」を消す デフォルトのインデント幅とタブを使わずスペースを使う キーバインドを変更する バックアップファイルを作らない メニューバー非表示化 自動で色を付ける設定 Ruby でマジックコメントを無効化 行末の空白行を表示 C-x p で前のウィンドウへ(other-window を逆向きに移動) 対応する括弧をハイライト スクロールバーを右に Emacs 起動時のメッセージを消す Emacsの設定ファイル($HOME/.emacs)に以下の設定を追加 (setq inhibit-startup-message t) エラーメッセージ「CRITICAL ** murrine_style_draw_box assertion `height = -1 failed」を消す Emacs 23のバグらしい? 「/usr/share/themes/Ambiance/gtk-2.0/gtkrc」の41行目 GtkRange trough-under-steppers = 0 を GtkRange trough-under-steppers = 1 にする デフォルトのインデント幅とタブを使わずスペースを使う (setq-default tab-width 2 indent-tabs-mode nil) キーバインドを変更する C-h を Backspace に (global-set-key "\C-h" delete-backward-char) C-c g を goto-line に (global-set-key "\C-cg" goto-line) バックアップファイルを作らない ;;; *.~ とかのバックアップファイルを作らない (setq make-backup-files nil) ;;; .#* とかのバックアップファイルを作らない (setq auto-save-default nil) メニューバー非表示化 (if window-system (menu-bar-mode 1) (menu-bar-mode -1)) 自動で色を付ける設定 (global-font-lock-mode t) Ruby でマジックコメントを無効化 (custom-set-variables (ruby-insert-encoding-magic-comment nil)) 行末の空白行を表示 (setq-default show-trailing-whitespace t) C-x p で前のウィンドウへ(other-window を逆向きに移動) (global-set-key "\C-xp" (lambda()(interactive)(other-window -1))) 対応する括弧をハイライト (show-paren-mode t) スクロールバーを右に (set-scroll-bar-mode right)
https://w.atwiki.jp/ntemacs/pages/46.html
■ MinGW版 Emacs 特有の設定 【お知らせ】 2017/10/05 追記 gnupack-11.00 の Cygwin を更新するには、次のページの 1) で紹介している setup.bat を起動することで対応可能です。 gnupack-13 の環境で Cygwin の Emacs を利用するための設定 2016/10/17 追記 追記現在、gnupack 本家サイトでの gnupack-11.00 の公開は中止されています。ただし、gnupack-11.00 の流れをくむ gnupack は次のページからダウンロードできます。 http //aikotobaha.blogspot.jp/search/label/gnupack このサイトでは、gnupack-12 の unofficial版をリリースしていますが、このリリースの Emacs は Cygwin版ではなく MinGW版のものです。(本家の方は、gnupack-12 以降 Cygwin版となっています。)これを使うことで、本設定を利用することができると思います。ただし、この unofficial版を構成するものは、Emacs だけでなく Cygwin や同梱の Emacs の設定(init.el)も古いものとなっています。利用にあたっては、Cygwin の更新や Emacs の設定の全面的な見直しが必要です。 2015/02/05 追記 W32-IME対応の x86版 Emacs は次のページからダウンロード可能です。 http //cha.la.coocan.jp/doc/NTEmacs.html#binary 2014/11/19 追記 次のページも併せて参照すると良いと思います。 http //blechmusik.hatenablog.jp/entry/2014/11/14/002259 2014/11/13 追記 GNU 謹製の Windows版 Emacs は次のページからダウンロードできます。 http //ftp.gnu.org/gnu/emacs/windows/ 上記のものは W32-IME対応版 ではありませんので、次のページの利用を検討ください。 emacs-mozc を動かすための設定(Emacs 設定編) 【本題】 gnupack は、Emacs が起動する前に config.ini で環境変数等の設定ができ、とても便利です。 以下は、この仕組みを使いながら NTEmacs64 を起動するための設定です。(MinGW版 Emacs であれば、GNU配布版 Emacs などでも適用可能です。) 1) 次のリポジトリから Emacs-25.2-IME-patched.zip をダウンロードし、解凍する。 https //github.com/chuntaro/NTEmacs64(chuntaro様の公開に感謝です。) 2) gnupack のインストールディレクトリの /app/emacs 配下に、解凍した Emacs-25.2 を配置する。 3) gnupack のインストールディレクトリにある config.ini の EMACS_DIR 変数を次のとおりに変更する。 EMACS_DIR = %INST_DIR%\app\emacs\emacs-25.2-IME-patched 4) ホームディレクトリの .emacs.d 配下にある init.el の最初に次の設定を追加する。 (参考)http //flower-snow.blogspot.jp/2008/11/emacs-load-path.html (let ((dir (expand-file-name (concat (getenv "INST_DIR") "/app/emacs/site-lisp")))) (unless (member dir load-path) (setq load-path (cons dir load-path)) (let ((default-directory dir)) (load (expand-file-name "subdirs.el") t t t)))) 5) gnupack の起動方法で、Emacs を起動する。 6) init.el でエラーが出るところがあれば、対処する。 変更履歴 2014/10/30 このページを作成した。 2016/10/17 chuntaro のサイトの NTEmacs64 が 25.1 にバージョンアップしていたので、記載の見直しを行った。 2017/08/10 chuntaro のサイトの NTEmacs64 が 25.2 にバージョンアップしていたので、記載の見直しを行った。
https://w.atwiki.jp/matsp/pages/18.html
Emacsの設定方法のうんたらかんたら Emacsの基本的なキーバインドはこちら こちらにキーバインドをまとめたチートシート(早見表)があるので、 Emacsを使いこなしたい人は見ておくといいかも(PDFファイルもあるので、DLして印刷もできます)。 ホームディレクトリの「.emacs」に以下の内容を記述すれば色々便利になります。 枠内の内容をそのままコピペして試してみてくださいねー 外部のEmacs Lispを使った拡張は別ページで解説 ;; ファイルの先頭が#!で始まるファイルは実行権をつけて保存(PerlとかRubyとか) (add-hook after-save-hook executable-make-buffer-file-executable-if-script-p) ;; 色をつける (auto-image-file-mode t) ;; Emacsのカラー設定(一例) (set-cursor-color "light blue") (set-background-color "gray30") (set-foreground-color "white") (set-face-background modeline "gainsboro") (set-face-background region "light blue") (set-face-foreground region "gray80") M-x list-colors-display で使うことができる色を見ることができます。 ;;終了時にオートセーブファイル(ファイル名の最後に~がついたファイル)を消す (setq delete-auto-save-files t) ;;ビープ音を鳴らさない (setq visible-bell t) ;;ビープ音の代わりの画面の反転さえもさせない (setq ring-bell-function (lambda ())) ;; tab を半角スペースに展開する (setq-default indent-tabs-mode nil) ;; モードラインにカラム数を表示 (column-number-mode 1) ;; emacsの起動画面を消す (setq inhibit-startup-message t) ;;ツールバー消去 (tool-bar-mode nil) ;; メニュー消去 (menu-bar-mode nil) ;; 1行全て(改行含めて)消す (setq kill-whole-line t) ;;スクロールバーを右に (set-scroll-bar-mode right) ;; 圧縮されたファイルを読めるようにする (auto-compression-mode t) ;; y-or-n-p(yes、noではなくy、nだけで答える) (fset yes-or-no-p y-or-n-p) ;; -nwオプションでメニューバーが出ないように (if window-system (menu-bar-mode 1) (menu-bar-mode -1)) ;; 折り返し有りを設定 (setq truncate-lines nil) (setq truncate-partial-width-windows nil) ;; 初期フレームの設定 ;; (Emacsが起動する位置と大きさ お好きなようにどうぞ) (setq default-frame-alist (append (list (width . 80) (height . 63) (top . 50) (left . 700)) default-frame-alist)) ;; スクロールを1行毎に (defun sane-next-line (arg) "Goto next line by ARG steps with scrolling sanely if needed." (interactive "p") (let ((newpt (save-excursion (next-line arg) (point)))) (while (null (pos-visible-in-window-p newpt)) (if ( arg 0) (scroll-down 1) (scroll-up 1))) (goto-char newpt) (setq this-command next-line) ()) ) (defun sane-previous-line (arg) "Goto previous line by ARG steps with scrolling back sanely if needed." (interactive "p") (sane-next-line ( - arg)) (setq this-command previous-line) () ) (defun sane-newline (arg) "Put newline\(s\) by ARG with scrolling sanely if needed." (interactive "p") (let ((newpt (save-excursion (newline arg) (indent-according-to-mode) (point)))) (while (null (pos-visible-in-window-p newpt)) (scroll-up 1)) (goto-char newpt) (setq this-command newline) ())) (global-set-key [up] sane-previous-line) (global-set-key [down] sane-next-line) (global-set-key "\C-m" sane-newline) (define-key global-map "\C-n" sane-next-line) (define-key global-map "\C-p" sane-previous-line) ;; 改行キーでオートインデント (define-key global-map "\C-m" newline-and-indent) ;; 常にカッコの対応をハイライトする (show-paren-mode 1) (setq show-paren-style mixed)
https://w.atwiki.jp/soscomp/pages/157.html
知能学科ではどういうわけかEmacsを推奨する教授が非常に多いのですが、学生は何故か保存コマンドと終了コマンドしか知らないので、よく使いそうなものを挙げておきます。 操作ガイド起動オプションターミナルモードで起動する 操作 解説サイト インストール・設定emacsでUTF-8を利用する Mew関連 操作ガイド 起動オプション ターミナルモードで起動する ~$ emacs -nw nwオプションをつけないとX環境ではxemacsが起動してしまいます。 操作 打ちかけたコマンドを取り消す Ctrl + x, u 解説サイト Emacs クイックリファレンス GNU Emacsマニュアルこのdoc書いた人がそもそも根性だと思う インストール・設定 emacsでUTF-8を利用する Japanese - emacs Mew関連 Mew マニュアル Mew5.2を個人用(自分のホーム)にインストールする 名前 コメント このページへのアクセス数 total - today - yesterday - このページのタグ一覧 Linux Unix
https://w.atwiki.jp/musukure/pages/21.html
~/.bashrc export EDITOR=emacs .emacsの設定(meadow, emacs共通部分) リージョンをハイライト (transient-mark-mode t) 対応する括弧をハイライト (show-paren-mode t) サブバージョンを使う (require psvn) ビープ音を消す (setq visible-bell nil) cモード (add-hook c-mode-common-hook (lambda() (c-set-style "linux"))) タグ (setq tags-table-list ("..." "..." "...")) タグのうちかた(Meadowの場合、c /Meadow/bin/以下にあるetags.exeを使ってタグをうつ) $etags `find SRC -name "*.cpp"` -o HOGE/TAGS $etags -a `find INC -name "*.h"` -o HOGE/TAGS ヘッダファイルでもc++モード起動 (setq auto-mode-alist (append (("\\.h$" . c++mode)) auto-mode-alist)) バックアップファイルを作らない (setq backup-inhibited t) スタートアップを表示しない (setq inhibit-startup-message t) 行数表示 (line-number-mode t) C# (add-hook csharp-mode-hook (lambda () (setq c-basic-offset 4 tab-width 4 indent-tabs-mode nil))) (autoload csharp-mode "csharp-mode" "C# editing mode." t) (nconc auto-mode-alist (("\\.cs$" . csharp-mode))) meadow(Windows) emacs(Linux)